package com.kabongos.activities;

import java.io.ByteArrayOutputStream;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;

import com.kabongos.facade.Facade;
import com.kabongos.sources.Tecnico;

public class CadastroTecnicoActivity extends Activity {
    EditText etNomeTecnico, etCpfTecnico, etSalarioTecnico, etNumeroDeClubes;
    Button btConfirmarTecnico;
    private static final int SELECT_IMAGE = 100;
    private String imagePath;
    private byte[] fotoTecnico;
    private ImageButton ibSelecionarTecnico;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("TESTE", "JA DENTRO DO CADAS");
        setContentView(R.layout.cadastro_tecnico);

        etNomeTecnico = (EditText) findViewById(R.id.etNomeTecnico);
        etCpfTecnico = (EditText) findViewById(R.id.etCpfTecnico);
        etSalarioTecnico = (EditText) findViewById(R.id.etSalarioTecnico);
        etNumeroDeClubes = (EditText) findViewById(R.id.etNumeroClubesTreinador);

        btConfirmarTecnico = (Button) findViewById(R.id.btConfirmarTecnico);

        btConfirmarTecnico.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                obtemDados();
                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);

            }
        });

        ibSelecionarTecnico = (ImageButton) findViewById(R.id.ibSelecionarTecnico);
        ibSelecionarTecnico.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent, "Selecione Escudo"), SELECT_IMAGE);

            }
        });
    }

    private void obtemDados() {
        // TODO: Contrutor com mais parametros
        Tecnico tecnico = new Tecnico(etNomeTecnico.getText().toString(), etCpfTecnico.getText().toString());

        if (!etSalarioTecnico.getText().toString().equals(""))
            tecnico.setSalario(Double.parseDouble(etSalarioTecnico.getText().toString()));

        if (!etNumeroDeClubes.getText().toString().equals(""))
            tecnico.setNumeroClubes(Long.parseLong(etNumeroDeClubes.getText().toString()));

        tecnico.setFotoTecnico(fotoTecnico);

        Facade tecnicoFacade = new Facade();
        tecnicoFacade.cadastraTecnico(tecnico);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_cadastro_tecnico, menu);
        return true;
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
        super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

        switch (requestCode) {
        case SELECT_IMAGE:
            if (resultCode == RESULT_OK) {
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };
                Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
                cursor.moveToFirst();
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                imagePath = cursor.getString(columnIndex);
                cursor.close();
                Bitmap bitmapTecnico;
                bitmapTecnico = BitmapFactory.decodeFile(imagePath);
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bitmapTecnico.compress(Bitmap.CompressFormat.PNG, 100, stream);
                fotoTecnico = stream.toByteArray();
            }
        }
    }

}
